package persistencia;

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

/*
 * Classe simples para baixar e gravar um arquivo.
 * 
 */

public class DownloadWSDL {
	private String uri;

	
	public DownloadWSDL(String uri) {
		this.uri = uri;
	}
	
	public void baixar(){
		try{  
            
			// Cria um arquivo de acordo com o nome do arquivo a ser baixado
            File file = new File(nomeDoArquivo());  
            OutputStream out = new FileOutputStream(file, false);  
              
            URL url = new URL(uri);  
            URLConnection conn = url.openConnection();  
            System.out.printf("Baixando: %s\n", uri);                          
            
            InputStream in = conn.getInputStream();  
              
            int i=0;  
            while ((i = in.read()) != -1){  
                out.write(i);  
            }  
            in.close();  
            out.close();  
            System.out.println("Download concluído");  
                                                              
        }  
          
        catch (FileNotFoundException e){  
            System.out.println("Arquivo não encontrado. Causa: " + e.getMessage());  
        }  
        catch (MalformedURLException e){  
            System.out.println("Erro na formação da URL. Causa: " + e.getMessage());   
        }  
        catch (IOException e){  
            System.out.println("Erro de entrada/saida de dados. Causa: " + e.getMessage());  
        }     
	}
	
	// Método para salvar o arquivo com o nome do arquivo baixado
	public String nomeDoArquivo(){
		return uri.substring(uri.lastIndexOf("/") + 1, uri.length());
	}

	public String getUri() {
		return uri;
	}

	public void setUrl(String uri) {
		this.uri = uri;
	}
}
